1. Field of the Invention
This invention relates generally to the field of mobile computing devices. More particularly, an embodiment relates to a system and method for employing mobile adaptive cache.
2. Description of the Related Art
Mobile computing devices (e.g., Personal Digital Assistants (PDAs) and phones) are becoming increasingly popular and important. Many distributed systems are using mobile computing devices as an integral part of their architecture. However, the performance of such mobile devices remains poor due to the limited resources of such devices in terms of the amount of memory, central processing unit (CPU) capacity, and network connectivity. One standard solution to the problem of reduced bandwidth is to deploy a cache near the location where the data is consumed, such as on the client device. Although this solution works well with desktop personal computers (PCs) and laptops, it is not a practical solution for smaller mobile devices, such as PalmPilots and smartphones.
For example, smaller mobile devices typically do not contain local hard drives and thus, having a cache on such devices require placing the cache on the main memory, which hinders performance by limiting the use and availability of the main memory and the CPU. Placing a cache at the main memory requires running complex algorithm and does not provide an efficient way for protecting the cache data if the connection is lost or the device crashes. Furthermore, starting a cache on a mobile device requires starting the cache empty (because cached data is not persistent across various communication sessions due to the lack of persistent storage, such as a hard drive), which results in the cache taking relatively long time to “fill up” with useful data. It is only after some time (e.g., “startup time”) that the “hit rate” of the cache (e.g., proportion of requests that can be answered from the cache without having to contact the remote server) reaches a level at which the device's performance can be regarded as reasonable. None of the solutions available today provide enough cache on mobile devices “without sacrificing performance, bandwidth, and efficiency.